/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.losalpes.carritoCompra;

import com.losalpes.businessEntities.Articulo;
import com.losalpes.catalog.ICatalogService;
import com.losalpes.persistence.entity.Inventario;
import com.losalpes.persistence.entity.Mueble;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;

/**
 *
 * @author FamiliaQA
 */
public class CarritoBean {
    @EJB
    private ICarritoCompraService carritoService;
    @EJB
    private ICatalogService catalogService;
    private Articulo articulo = new Articulo();
    private ArrayList<Articulo> listaArticulos = new ArrayList<Articulo>();
    private String Referencia;
    private double valorTotal;
    private int cantidad;
    
    public CarritoBean() {
        //carritoService = new CarritoCompraMock();
        //this.listaArticulos = carritoService.findAllArticulos();
    }

    public List getAllArticulos() {
        this.listaArticulos = carritoService.findAllArticulos();
        return this.listaArticulos;
    }
  
    public String add() {
        carritoService.add(articulo);
        this.newArticulo();
        if (this.articulo != null) {
            return "modificar";
        } else {
            return "noexiste";
        }
        //return catalogService.findAllArticulos();
    }

     public String addfromMueble() throws IOException {
        Mueble mueble=catalogService.getMueblebyRef(this.Referencia);
        Inventario inventario=catalogService.findInventarioMueble(this.Referencia);
        this.articulo= new Articulo(mueble.getReferencia(), mueble.getNombre(), 1, inventario.getPrecio());

        this.listaArticulos.add(this.articulo);
        this.newArticulo();
        if (this.articulo != null) {
            return "modificar";
        } else {
            return "noexiste";
        }
    }

    public Articulo getArticulo() {
        return articulo;
    }

    public void setArticulo(Articulo cArticulo) {
        this.articulo = cArticulo;
    }

    /**
     * Borra el mueble seleccionado
     */
    public void delete() {
        this.carritoService.remove(this.articulo);
        this.newArticulo();
        return;
    }

    public String back() {
        return "back";
    }

    public void newArticulo() {
        articulo = new Articulo();
    }

    public String getReferencia() {
        return Referencia;
    }

    public void setReferencia(String Referencia) {
        this.Referencia = Referencia;
    }

    public double getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(double valorTotal) {
        this.valorTotal = valorTotal;
    }

    public String Limpiar(){
        this.listaArticulos.clear();
        carritoService.limpiar();
        return "cancelar";
    }

    public String ValorTotal(){
        Iterator iter=listaArticulos.iterator();
        double valorTotalTemp=0;
        while (iter.hasNext()){
            Articulo articuloTemp=(Articulo) iter.next();
            valorTotalTemp=valorTotalTemp+(articuloTemp.getValor()*articuloTemp.getCantidad());
        }
        this.valorTotal = valorTotalTemp;
        return "efectuar";
    }

    public int getCantidad() {
        return cantidad;
    }

    public void setCantidad(int cantidad) {
        this.cantidad = cantidad;
        this.articulo.setCantidad(cantidad);
    }

}
